// 主页面楼梯功能 可以随着楼层变换文字内容  以及鼠标划上是一种内容样式
function Floor(){}
$.extend(Floor.prototype,{
    init:function(){
        this.boxs = $(".floor_box")
        this.showheight = $(".welfare").offset().top;
        this.stairs     = $(".floor");
        this.stairsList = $(".floor ul li:even");
        this.boxsList = [];
        // 遍历获取每个楼层的最大值和最小值 放进boxlist之中进行存储
        $.each(this.boxs ,$.proxy(function(index , item){
            var min = $(item).offset().top;
            this.boxsList.push({
                min : min-40 ,
                max : min + $(item).outerHeight()
            })
        },this) )
        //滚动的时候给楼梯添加样式 楼梯的显示隐藏
        $(window).scroll($.proxy(function(){
            var st = $("body,html").scrollTop();
            this.toggleStairst(st);
            this.changeStairst(st);
        },this))
        // 点击楼层跳转到对应的高度
        this.stairsList.on("click","a",$.proxy(function(evt){
            var target = evt.target;
            var ele = target.parentNode.parentNode;
            var list =Array.from( this.stairsList)
            var index = list.indexOf(ele);
            this.changeFloor.call(this,index);
        },this))
    },
    // 判断楼梯的显示隐藏
    toggleStairst : function(st){
        this.hidheight  = $(".shop_footer").offset().top;
        var has = this.stairs.hasClass("show");
        if(!has && st > this.showheight && st<this.hidheight ){
            this.stairs.addClass("show");
        }
        if(has && st < this.showheight){
            this.stairs.removeClass("show");
        }
        if(has && st > this.hidheight){
            this.stairs.removeClass("show");
        }
    },
    // 给楼梯添加样式
    changeStairst : function(scrollTop){
        $.each(this.boxsList,$.proxy(function(index,item){
            if(scrollTop >= item.min && scrollTop < item.max){
                var ele = this.stairsList.eq(index);
                ele.addClass("active").siblings().removeClass("active");
            }
        },this))
    },
    // 楼层的跳转
    changeFloor : function(index){
        $("html,body").scrollTop(this.boxs.eq(index).offset().top - 48);
    }
})
export default new Floor();